Перед обменом информации клиент и сервер должны иметь соединение TCP, именно по этому мы устанавливали соединение Internet. То есть нам нужен был IP адрес. Как различаются разные протоколы ? Для этого используются уникальные номера. Эти номера называются портами. Для HTTP стандартный порт 80. Вот список наиболее известных портов.
Порты делятся на 2 части. С адресами ниже 1024 привелигированные вы не сможете создать свой порт с номером меньше 1024. Мы с вами в нашей программе указывали номер порта создавая сокет.
Каждый запрос клиента передаваемый на WEB-сервер начинается с метода, за которым следует URL объекта. Далее идет информация о версии протокола HTTP и символ возврата каретки с переводом строки. Метод - это команда клиента к серверу с целью указания запроса. Мы его не обрабатывали. Научимся :-)
Ответ сервера
После получения сообщения сервер отвечает сообщением HTTP. Затем идет код статуса и тема ответа из 3 цифр, потом дополнительная информация, а потом тело ответа. Если обратите внимание, что мы с Вами это упустили. Ну и ладно исправим потом. А вот данные мы посылали так.
CString buff="\nСайт шаг за шагом представляет\n\r\n";
HTTPServer.SendData(buff.GetBuffer(1000));
..........
void CSeverWinSock::SendData(LPSTR buff)
{
int Errors;
Errors = send(clientsocket,(LPSTR)buff,lstrlen(buff),0);
if (Errors == SOCKET_ERROR) AfxMessageBox("Error Send");
}
Сервер разрывает соединение
После отправки сообщения сервер имеет возможность разорвать соединение. Вот так мы это делали закрывая сокет.